package leetcode.onehundred;
//101. 对称二叉树
public class IsSymmetric {

    /**
     * 递归过程：
     *
     * 判断两个指针当前节点值是否相等
     * 判断 A 的右子树与 B 的左子树是否对称
     * 判断 A 的左子树与 B 的右子树是否对称
     * @param root
     * @return
     */
    public boolean isSymmetric(TreeNode root) {
        return isMirror(root,root);
    }

    private boolean isMirror(TreeNode l1, TreeNode l2) {
        if (l1==null && l2==null){
            return true;
        }
        if (l1==null || l2==null){
            return false;
        }
        return (l1.val==l2.val)&&(isMirror(l1.right,l2.left))&&isMirror(l1.left,l2.right);
    }
}
